package com.ruoyi.tongji.run;

import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.tongji.entity.linkman.交通补助表;
import com.ruoyi.tongji.entity.linkman.宣传员费用;
import com.ruoyi.tongji.entity.linkman.宣传员费用汇总;
import com.ruoyi.tongji.entity.宣传员;
import com.ruoyi.tongji.run.manager.ManagerFactory;
import com.ruoyi.tongji.utils.DateUtil;
import org.beetl.sql.core.SQLManager;

import java.io.File;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class 车主路费统计直接走系统 {

    //改好日期后，鼠标右键，选择“Debug”开头的菜单点击。
    //运行结束后，也就是下面的代码框内内容不再变动，找到“E:\文档\第三方费用统计\路费\”找到对应的日期范围的文件夹
    //再打开"费用统计"文件夹，从上到下，逐个打印。

    public static void main(String[] args) {
        Date dateRangeStart = DateUtil.getDate("2024-09-01 0000000","yyyy-MM-dd HHmmsss");//把这个变量的日期改成统计开始日期
        Date dateRangeEnd = DateUtil.getDate("2024-09-10 2359000","yyyy-MM-dd HHmmsss");//把这个变量的日期改成统计截止日期
        车主路费统计直接走系统.start(dateRangeStart, dateRangeEnd,null,null);
    }

    public static File start(Date dateRangeStart, Date dateRangeEnd, String name, String type) {
        String dateRange = DateUtil.format(dateRangeStart, "yyyy年MM月dd日") + "至" + DateUtil.format(dateRangeEnd, "yyyy年MM月dd日");
        String root = "E:\\文档\\第三方费用统计\\路费\\" + dateRange;

        SQLManager jiangzhanSqlManager = ManagerFactory.jiangzhanSqlManager();


        File rootFile = new File(root);
        rootFile.mkdirs();
        //if(true) return ;
        宣传员 xcy = new 宣传员();
        if (StringUtils.isNotBlank(name)) {
            xcy.setName(name);
        }
        if (StringUtils.isNotBlank(type)) {
            xcy.setType(type);
        } else {
            xcy.setType("正常宣传员");
        }

        List xcyList = jiangzhanSqlManager.template(xcy);
        交通补助表.车主路费Map();
        宣传员费用汇总 宣传员费用汇总 = new 宣传员费用汇总();
        宣传员费用汇总.setDateRangeStart(dateRangeStart);
        宣传员费用汇总.setDateRangeEnd(dateRangeEnd);
        for (Iterator<宣传员> iterator = xcyList.iterator(); iterator.hasNext();) {

            宣传员 宣传员 = iterator.next();

            宣传员费用 宣传员费用 = new 宣传员费用();
            宣传员费用.setDateRangeStart(dateRangeStart);
            宣传员费用.setDateRangeEnd(dateRangeEnd);
            宣传员费用.setLinkman(宣传员);
            宣传员费用.统计();

            宣传员费用汇总.get宣传员费用List().add(宣传员费用);
            System.out.println(宣传员费用 + "|" + 宣传员费用.get费用明细().get合计金额());
        }
        宣传员费用汇总.汇总();

        File file = new File(root);
        return file;
    }
}
